# Our Setup, Import Libaries, Create our Imshow Function and Download our Images
import cv2
import numpy as np
from matplotlib import pyplot as plt
# Define our imshow function
def imshow(title = "Image", image = None, size = 10):
w, h = image.shape[0], image.shape[1]
aspect_ratio = w/h
plt.figure(figsize=(size * aspect_ratio,size))
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.title(title)
plt.show()
# # Download and unzip our images
# !wget https://moderncomputervision.s3.eu-west-2.amazonaws.com/images.zip
# !unzip -qq images.zip
import cv2
import numpy as np
image = cv2.imread('Datasets/images/flowers.jpeg')
imshow('Original Image', image)
# 3 x 3 kernel qora kernel yaratish.
#kernel kopaytmasiga bolish orqali yorug'lik qiymatini saqlab qolish aks holda yoruglik kopayib oqarib ketadi
kernel_3x3 = np.ones((3, 3), np.float32) / 9
kernel_3x3_2 = np.ones((3, 3), np.float32)
# cv2.fitler2D - kernelni rasmga apply qilish uchun
blurred = cv2.filter2D(image, -1, kernel_3x3)
imshow('3x3 Kernel Blurring', blurred)
# Kernelni yorugligini pasaytirmasdan bolish
blurred2 = cv2.filter2D(image, -1, kernel_3x3_2)
imshow('3x3 without deviding kernel ', blurred2)
# Kattaroq matrix 7 x 7 kernel. Ta'siri ko'proq bo'lishi uchun
kernel_7x7 = np.ones((7, 7), np.float32) /49
blurred2 = cv2.filter2D(image, -1, kernel_7x7)
imshow('7x7 Kernel Blurring', blurred2)
import cv2
import numpy as np
image = cv2.imread('Datasets/images/flowers.jpeg')
# Averaging done by convolving the image with a normalized box filter.
# This takes the pixels under the box and replaces the central element
# Box size needs to odd and positive
blur = cv2.blur(image, ksize=(5,5))
imshow('Averaging', blur)
# Instead of box filter, gaussian kernel
Gaussian = cv2.GaussianBlur(image, (5,5), 0)
imshow('Gaussian Blurring', Gaussian)
# Takes median of all the pixels under kernel area and central
# element is replaced with this median value
median = cv2.medianBlur(image, 5)
imshow('Median Blurring', median)
dst = cv.bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]])¶# Bilateral is very effective in noise removal while keeping edges sharp
bilateral = cv2.bilateralFilter(image, 9, 75, 75)
imshow('Bilateral Blurring', bilateral)
There are 4 variations of Non-Local Means Denoising:
fastNlMeansDenoisingColored(InputArray src, OutputArray dst, float h=3, float hColor=3, int templateWindowSize=7, int searchWindowSize=21 )¶
image = cv2.imread('Datasets/images/hilton.jpeg')
imshow('Original', image)
dst = cv2.fastNlMeansDenoisingColored(image, None, 6, 6, 7, 21)
imshow('fastNlMeansDenoisingColored', dst)
# Loading our image
image = cv2.imread('Datasets/images/hilton.jpeg')
imshow('Original', image)
# Sharpening qiladigon kernel, Kernel matrix ichidagi sonlar yig'indisi 1 ga teng bo'lishi kerak
kernel_sharpening = np.array([[-1,-1,-1],
[-1, 9,-1], #center ga yoziladi asosiy kernel raqami
[-1,-1,-1]])
# applying the sharpening kernel to the image
sharpened = cv2.filter2D(image, -1, kernel_sharpening) #cv2.filter2D funksiyasi orqali amalga oshiriladi
imshow('Sharpened Image', sharpened)